Crate thalo

source · []
Expand description

A framework for building large-scale event sourced microservices.

Thalo is a framework for creating event driven apps with event sourcing. Some closely related patterns are used, including event sourcing, CQRS, transactional outbox, event driven, DDD.

Core Modules

  • Aggregates - Consistency boundary around a domain entity responsible for handling commands and applying events.
  • Events - Events that occured in your system.
  • Event Store - Event store containing all application events.
  • Event Stream - Event stream, such as Kafka/RedPanda.

Official Crates

Core

  • thalo - Core framework (this crate).
  • thalo-schema - Build aggregate schemas into Rust code.
  • thalo-testing - Test utils for thalo apps.
  • thalo-macros - Macros for implementing traits. This can be enabled in the core crate with the macros feature flag.

Event stores

Event streams

Current status

Thalo is still under heavy development and is not production ready.

Get in touch

If you’d like to ask/discuss or learn more, you can reach via the liks below:

Examples

Examples can be seen in the examples directory.

Modules

Aggregates

Events

event_storeevent-store

Event store

event_streamevent-stream

Event stream

Macros

Include generated aggregate code.

Structs

An infallible error type typically used for event handlers or event streams that do not fail.